package com.appkubes.mall.core.pojo;

import com.appkubes.mall.core.po.FintechUser;
import com.appkubes.mall.core.po.FintechUserExample;
import java.util.List;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.DeleteProvider;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.InsertProvider;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.SelectProvider;
import org.apache.ibatis.annotations.Update;
import org.apache.ibatis.annotations.UpdateProvider;
import org.apache.ibatis.session.RowBounds;
import org.apache.ibatis.type.JdbcType;

public interface FintechUserMapper {
    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table fintech_user
     *
     * @mbg.generated
     */
    @SelectProvider(type=FintechUserSqlProvider.class, method="countByExample")
    long countByExample(FintechUserExample example);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table fintech_user
     *
     * @mbg.generated
     */
    @DeleteProvider(type=FintechUserSqlProvider.class, method="deleteByExample")
    int deleteByExample(FintechUserExample example);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table fintech_user
     *
     * @mbg.generated
     */
    @Delete({
        "delete from fintech_user",
        "where user_key = #{userKey,jdbcType=VARCHAR}"
    })
    int deleteByPrimaryKey(String userKey);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table fintech_user
     *
     * @mbg.generated
     */
    @Insert({
        "insert into fintech_user (user_key, is_all_certificate, ",
        "is_all_certificate_end_time, is_base_info_certificate, ",
        "is_base_info_certificate_start_time, is_base_info_certificate_end_time, ",
        "is_base_info, is_base_info_start_time, ",
        "is_base_info_end_time, is_job, ",
        "is_emergency, is_real_name_certificate, ",
        "is_real_name_certificate_start_time, is_real_name_certificate_end_time, ",
        "is_bank_card_certificate_start_time, is_bank_card_certificate_end_time, ",
        "is_bank_card_certificate, last_user_base_info_key, ",
        "last_user_job_key, last_user_contact_key, ",
        "last_user_personal_key, last_user_bank_card_key, ",
        "certificate_3, certificate_4, ",
        "is_operator_get, is_operator_start_time, ",
        "is_operator_end_time, app_key)",
        "values (#{userKey,jdbcType=VARCHAR}, #{isAllCertificate,jdbcType=INTEGER}, ",
        "#{isAllCertificateEndTime,jdbcType=TIMESTAMP}, #{isBaseInfoCertificate,jdbcType=INTEGER}, ",
        "#{isBaseInfoCertificateStartTime,jdbcType=TIMESTAMP}, #{isBaseInfoCertificateEndTime,jdbcType=TIMESTAMP}, ",
        "#{isBaseInfo,jdbcType=INTEGER}, #{isBaseInfoStartTime,jdbcType=TIMESTAMP}, ",
        "#{isBaseInfoEndTime,jdbcType=TIMESTAMP}, #{isJob,jdbcType=INTEGER}, ",
        "#{isEmergency,jdbcType=INTEGER}, #{isRealNameCertificate,jdbcType=INTEGER}, ",
        "#{isRealNameCertificateStartTime,jdbcType=TIMESTAMP}, #{isRealNameCertificateEndTime,jdbcType=TIMESTAMP}, ",
        "#{isBankCardCertificateStartTime,jdbcType=TIMESTAMP}, #{isBankCardCertificateEndTime,jdbcType=TIMESTAMP}, ",
        "#{isBankCardCertificate,jdbcType=INTEGER}, #{lastUserBaseInfoKey,jdbcType=VARCHAR}, ",
        "#{lastUserJobKey,jdbcType=VARCHAR}, #{lastUserContactKey,jdbcType=VARCHAR}, ",
        "#{lastUserPersonalKey,jdbcType=VARCHAR}, #{lastUserBankCardKey,jdbcType=VARCHAR}, ",
        "#{certificate3,jdbcType=INTEGER}, #{certificate4,jdbcType=INTEGER}, ",
        "#{isOperatorGet,jdbcType=INTEGER}, #{isOperatorStartTime,jdbcType=TIMESTAMP}, ",
        "#{isOperatorEndTime,jdbcType=TIMESTAMP}, #{appKey,jdbcType=VARCHAR})"
    })
    int insert(FintechUser record);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table fintech_user
     *
     * @mbg.generated
     */
    @InsertProvider(type=FintechUserSqlProvider.class, method="insertSelective")
    int insertSelective(FintechUser record);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table fintech_user
     *
     * @mbg.generated
     */
    @SelectProvider(type=FintechUserSqlProvider.class, method="selectByExample")
    @Results({
        @Result(column="user_key", property="userKey", jdbcType=JdbcType.VARCHAR, id=true),
        @Result(column="is_all_certificate", property="isAllCertificate", jdbcType=JdbcType.INTEGER),
        @Result(column="is_all_certificate_end_time", property="isAllCertificateEndTime", jdbcType=JdbcType.TIMESTAMP),
        @Result(column="is_base_info_certificate", property="isBaseInfoCertificate", jdbcType=JdbcType.INTEGER),
        @Result(column="is_base_info_certificate_start_time", property="isBaseInfoCertificateStartTime", jdbcType=JdbcType.TIMESTAMP),
        @Result(column="is_base_info_certificate_end_time", property="isBaseInfoCertificateEndTime", jdbcType=JdbcType.TIMESTAMP),
        @Result(column="is_base_info", property="isBaseInfo", jdbcType=JdbcType.INTEGER),
        @Result(column="is_base_info_start_time", property="isBaseInfoStartTime", jdbcType=JdbcType.TIMESTAMP),
        @Result(column="is_base_info_end_time", property="isBaseInfoEndTime", jdbcType=JdbcType.TIMESTAMP),
        @Result(column="is_job", property="isJob", jdbcType=JdbcType.INTEGER),
        @Result(column="is_emergency", property="isEmergency", jdbcType=JdbcType.INTEGER),
        @Result(column="is_real_name_certificate", property="isRealNameCertificate", jdbcType=JdbcType.INTEGER),
        @Result(column="is_real_name_certificate_start_time", property="isRealNameCertificateStartTime", jdbcType=JdbcType.TIMESTAMP),
        @Result(column="is_real_name_certificate_end_time", property="isRealNameCertificateEndTime", jdbcType=JdbcType.TIMESTAMP),
        @Result(column="is_bank_card_certificate_start_time", property="isBankCardCertificateStartTime", jdbcType=JdbcType.TIMESTAMP),
        @Result(column="is_bank_card_certificate_end_time", property="isBankCardCertificateEndTime", jdbcType=JdbcType.TIMESTAMP),
        @Result(column="is_bank_card_certificate", property="isBankCardCertificate", jdbcType=JdbcType.INTEGER),
        @Result(column="last_user_base_info_key", property="lastUserBaseInfoKey", jdbcType=JdbcType.VARCHAR),
        @Result(column="last_user_job_key", property="lastUserJobKey", jdbcType=JdbcType.VARCHAR),
        @Result(column="last_user_contact_key", property="lastUserContactKey", jdbcType=JdbcType.VARCHAR),
        @Result(column="last_user_personal_key", property="lastUserPersonalKey", jdbcType=JdbcType.VARCHAR),
        @Result(column="last_user_bank_card_key", property="lastUserBankCardKey", jdbcType=JdbcType.VARCHAR),
        @Result(column="certificate_3", property="certificate3", jdbcType=JdbcType.INTEGER),
        @Result(column="certificate_4", property="certificate4", jdbcType=JdbcType.INTEGER),
        @Result(column="is_operator_get", property="isOperatorGet", jdbcType=JdbcType.INTEGER),
        @Result(column="is_operator_start_time", property="isOperatorStartTime", jdbcType=JdbcType.TIMESTAMP),
        @Result(column="is_operator_end_time", property="isOperatorEndTime", jdbcType=JdbcType.TIMESTAMP),
        @Result(column="app_key", property="appKey", jdbcType=JdbcType.VARCHAR)
    })
    List<FintechUser> selectByExampleWithRowbounds(FintechUserExample example, RowBounds rowBounds);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table fintech_user
     *
     * @mbg.generated
     */
    @SelectProvider(type=FintechUserSqlProvider.class, method="selectByExample")
    @Results({
        @Result(column="user_key", property="userKey", jdbcType=JdbcType.VARCHAR, id=true),
        @Result(column="is_all_certificate", property="isAllCertificate", jdbcType=JdbcType.INTEGER),
        @Result(column="is_all_certificate_end_time", property="isAllCertificateEndTime", jdbcType=JdbcType.TIMESTAMP),
        @Result(column="is_base_info_certificate", property="isBaseInfoCertificate", jdbcType=JdbcType.INTEGER),
        @Result(column="is_base_info_certificate_start_time", property="isBaseInfoCertificateStartTime", jdbcType=JdbcType.TIMESTAMP),
        @Result(column="is_base_info_certificate_end_time", property="isBaseInfoCertificateEndTime", jdbcType=JdbcType.TIMESTAMP),
        @Result(column="is_base_info", property="isBaseInfo", jdbcType=JdbcType.INTEGER),
        @Result(column="is_base_info_start_time", property="isBaseInfoStartTime", jdbcType=JdbcType.TIMESTAMP),
        @Result(column="is_base_info_end_time", property="isBaseInfoEndTime", jdbcType=JdbcType.TIMESTAMP),
        @Result(column="is_job", property="isJob", jdbcType=JdbcType.INTEGER),
        @Result(column="is_emergency", property="isEmergency", jdbcType=JdbcType.INTEGER),
        @Result(column="is_real_name_certificate", property="isRealNameCertificate", jdbcType=JdbcType.INTEGER),
        @Result(column="is_real_name_certificate_start_time", property="isRealNameCertificateStartTime", jdbcType=JdbcType.TIMESTAMP),
        @Result(column="is_real_name_certificate_end_time", property="isRealNameCertificateEndTime", jdbcType=JdbcType.TIMESTAMP),
        @Result(column="is_bank_card_certificate_start_time", property="isBankCardCertificateStartTime", jdbcType=JdbcType.TIMESTAMP),
        @Result(column="is_bank_card_certificate_end_time", property="isBankCardCertificateEndTime", jdbcType=JdbcType.TIMESTAMP),
        @Result(column="is_bank_card_certificate", property="isBankCardCertificate", jdbcType=JdbcType.INTEGER),
        @Result(column="last_user_base_info_key", property="lastUserBaseInfoKey", jdbcType=JdbcType.VARCHAR),
        @Result(column="last_user_job_key", property="lastUserJobKey", jdbcType=JdbcType.VARCHAR),
        @Result(column="last_user_contact_key", property="lastUserContactKey", jdbcType=JdbcType.VARCHAR),
        @Result(column="last_user_personal_key", property="lastUserPersonalKey", jdbcType=JdbcType.VARCHAR),
        @Result(column="last_user_bank_card_key", property="lastUserBankCardKey", jdbcType=JdbcType.VARCHAR),
        @Result(column="certificate_3", property="certificate3", jdbcType=JdbcType.INTEGER),
        @Result(column="certificate_4", property="certificate4", jdbcType=JdbcType.INTEGER),
        @Result(column="is_operator_get", property="isOperatorGet", jdbcType=JdbcType.INTEGER),
        @Result(column="is_operator_start_time", property="isOperatorStartTime", jdbcType=JdbcType.TIMESTAMP),
        @Result(column="is_operator_end_time", property="isOperatorEndTime", jdbcType=JdbcType.TIMESTAMP),
        @Result(column="app_key", property="appKey", jdbcType=JdbcType.VARCHAR)
    })
    List<FintechUser> selectByExample(FintechUserExample example);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table fintech_user
     *
     * @mbg.generated
     */
    @Select({
        "select",
        "user_key, is_all_certificate, is_all_certificate_end_time, is_base_info_certificate, ",
        "is_base_info_certificate_start_time, is_base_info_certificate_end_time, is_base_info, ",
        "is_base_info_start_time, is_base_info_end_time, is_job, is_emergency, is_real_name_certificate, ",
        "is_real_name_certificate_start_time, is_real_name_certificate_end_time, is_bank_card_certificate_start_time, ",
        "is_bank_card_certificate_end_time, is_bank_card_certificate, last_user_base_info_key, ",
        "last_user_job_key, last_user_contact_key, last_user_personal_key, last_user_bank_card_key, ",
        "certificate_3, certificate_4, is_operator_get, is_operator_start_time, is_operator_end_time, ",
        "app_key",
        "from fintech_user",
        "where user_key = #{userKey,jdbcType=VARCHAR}"
    })
    @Results({
        @Result(column="user_key", property="userKey", jdbcType=JdbcType.VARCHAR, id=true),
        @Result(column="is_all_certificate", property="isAllCertificate", jdbcType=JdbcType.INTEGER),
        @Result(column="is_all_certificate_end_time", property="isAllCertificateEndTime", jdbcType=JdbcType.TIMESTAMP),
        @Result(column="is_base_info_certificate", property="isBaseInfoCertificate", jdbcType=JdbcType.INTEGER),
        @Result(column="is_base_info_certificate_start_time", property="isBaseInfoCertificateStartTime", jdbcType=JdbcType.TIMESTAMP),
        @Result(column="is_base_info_certificate_end_time", property="isBaseInfoCertificateEndTime", jdbcType=JdbcType.TIMESTAMP),
        @Result(column="is_base_info", property="isBaseInfo", jdbcType=JdbcType.INTEGER),
        @Result(column="is_base_info_start_time", property="isBaseInfoStartTime", jdbcType=JdbcType.TIMESTAMP),
        @Result(column="is_base_info_end_time", property="isBaseInfoEndTime", jdbcType=JdbcType.TIMESTAMP),
        @Result(column="is_job", property="isJob", jdbcType=JdbcType.INTEGER),
        @Result(column="is_emergency", property="isEmergency", jdbcType=JdbcType.INTEGER),
        @Result(column="is_real_name_certificate", property="isRealNameCertificate", jdbcType=JdbcType.INTEGER),
        @Result(column="is_real_name_certificate_start_time", property="isRealNameCertificateStartTime", jdbcType=JdbcType.TIMESTAMP),
        @Result(column="is_real_name_certificate_end_time", property="isRealNameCertificateEndTime", jdbcType=JdbcType.TIMESTAMP),
        @Result(column="is_bank_card_certificate_start_time", property="isBankCardCertificateStartTime", jdbcType=JdbcType.TIMESTAMP),
        @Result(column="is_bank_card_certificate_end_time", property="isBankCardCertificateEndTime", jdbcType=JdbcType.TIMESTAMP),
        @Result(column="is_bank_card_certificate", property="isBankCardCertificate", jdbcType=JdbcType.INTEGER),
        @Result(column="last_user_base_info_key", property="lastUserBaseInfoKey", jdbcType=JdbcType.VARCHAR),
        @Result(column="last_user_job_key", property="lastUserJobKey", jdbcType=JdbcType.VARCHAR),
        @Result(column="last_user_contact_key", property="lastUserContactKey", jdbcType=JdbcType.VARCHAR),
        @Result(column="last_user_personal_key", property="lastUserPersonalKey", jdbcType=JdbcType.VARCHAR),
        @Result(column="last_user_bank_card_key", property="lastUserBankCardKey", jdbcType=JdbcType.VARCHAR),
        @Result(column="certificate_3", property="certificate3", jdbcType=JdbcType.INTEGER),
        @Result(column="certificate_4", property="certificate4", jdbcType=JdbcType.INTEGER),
        @Result(column="is_operator_get", property="isOperatorGet", jdbcType=JdbcType.INTEGER),
        @Result(column="is_operator_start_time", property="isOperatorStartTime", jdbcType=JdbcType.TIMESTAMP),
        @Result(column="is_operator_end_time", property="isOperatorEndTime", jdbcType=JdbcType.TIMESTAMP),
        @Result(column="app_key", property="appKey", jdbcType=JdbcType.VARCHAR)
    })
    FintechUser selectByPrimaryKey(String userKey);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table fintech_user
     *
     * @mbg.generated
     */
    @UpdateProvider(type=FintechUserSqlProvider.class, method="updateByExampleSelective")
    int updateByExampleSelective(@Param("record") FintechUser record, @Param("example") FintechUserExample example);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table fintech_user
     *
     * @mbg.generated
     */
    @UpdateProvider(type=FintechUserSqlProvider.class, method="updateByExample")
    int updateByExample(@Param("record") FintechUser record, @Param("example") FintechUserExample example);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table fintech_user
     *
     * @mbg.generated
     */
    @UpdateProvider(type=FintechUserSqlProvider.class, method="updateByPrimaryKeySelective")
    int updateByPrimaryKeySelective(FintechUser record);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table fintech_user
     *
     * @mbg.generated
     */
    @Update({
        "update fintech_user",
        "set is_all_certificate = #{isAllCertificate,jdbcType=INTEGER},",
          "is_all_certificate_end_time = #{isAllCertificateEndTime,jdbcType=TIMESTAMP},",
          "is_base_info_certificate = #{isBaseInfoCertificate,jdbcType=INTEGER},",
          "is_base_info_certificate_start_time = #{isBaseInfoCertificateStartTime,jdbcType=TIMESTAMP},",
          "is_base_info_certificate_end_time = #{isBaseInfoCertificateEndTime,jdbcType=TIMESTAMP},",
          "is_base_info = #{isBaseInfo,jdbcType=INTEGER},",
          "is_base_info_start_time = #{isBaseInfoStartTime,jdbcType=TIMESTAMP},",
          "is_base_info_end_time = #{isBaseInfoEndTime,jdbcType=TIMESTAMP},",
          "is_job = #{isJob,jdbcType=INTEGER},",
          "is_emergency = #{isEmergency,jdbcType=INTEGER},",
          "is_real_name_certificate = #{isRealNameCertificate,jdbcType=INTEGER},",
          "is_real_name_certificate_start_time = #{isRealNameCertificateStartTime,jdbcType=TIMESTAMP},",
          "is_real_name_certificate_end_time = #{isRealNameCertificateEndTime,jdbcType=TIMESTAMP},",
          "is_bank_card_certificate_start_time = #{isBankCardCertificateStartTime,jdbcType=TIMESTAMP},",
          "is_bank_card_certificate_end_time = #{isBankCardCertificateEndTime,jdbcType=TIMESTAMP},",
          "is_bank_card_certificate = #{isBankCardCertificate,jdbcType=INTEGER},",
          "last_user_base_info_key = #{lastUserBaseInfoKey,jdbcType=VARCHAR},",
          "last_user_job_key = #{lastUserJobKey,jdbcType=VARCHAR},",
          "last_user_contact_key = #{lastUserContactKey,jdbcType=VARCHAR},",
          "last_user_personal_key = #{lastUserPersonalKey,jdbcType=VARCHAR},",
          "last_user_bank_card_key = #{lastUserBankCardKey,jdbcType=VARCHAR},",
          "certificate_3 = #{certificate3,jdbcType=INTEGER},",
          "certificate_4 = #{certificate4,jdbcType=INTEGER},",
          "is_operator_get = #{isOperatorGet,jdbcType=INTEGER},",
          "is_operator_start_time = #{isOperatorStartTime,jdbcType=TIMESTAMP},",
          "is_operator_end_time = #{isOperatorEndTime,jdbcType=TIMESTAMP},",
          "app_key = #{appKey,jdbcType=VARCHAR}",
        "where user_key = #{userKey,jdbcType=VARCHAR}"
    })
    int updateByPrimaryKey(FintechUser record);
}